<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <my-parent></my-parent>
  </div>
</body>
<template id="parent">
  <div>
    <h1>父组件</h1>
    <p>子组件的数据为：{{ msg }}</p>
    <my-child @my-event="getData"/>
  </div>
</template>
<template id="child">
  <div>
    <h4>子组件</h4>
    <button @click="sendData">发送数据给父组件</button>
  </div>
</template>
<script src="lib/vue.js"></script>W
<script>
  /**
    1.在父组件调用子组件的地方，绑定一个自定义的事件，该事件由父组件实现，该事件的默认参数就是子组件传递给父组件的数据
  */
  // 2.在子组件的某一个事件内部，通过 this.$emit('自定义的事件名', 参数) 完成值的传递
  const Child = {
    template: '#child',
    methods: {
      sendData () {
        this.$emit('my-event', 10000)
      }
    }
  }
  const Parent = {
    template: '#parent',
    data () {
      return {
        msg: ''
      }
    },
    components: {
      MyChild: Child
    },
    methods: {
      getData (val) {
        console.log(val)
        this.msg = val
      }
    },
  }

  new Vue({
    el: '#app',
    components: {
      MyParent: Parent
    }
  })
</script>
</html>